Often, in order to handle contact center resource allocation, the prior art has utilized sophisticated rules engines to place contacts into a queue from which they would be dequeued as appropriate resources become available. These rules engines can be beneficial because they allow the implementation of queuing strategies which are fine tuned to a particular business' needs. However, while these rules engines can be used to implement queuing strategies, they suffer from many drawbacks. For example, in prior art rules based systems, the rules engine itself creates a bottleneck, where any processing must take place using the rules engine. This can make it difficult for prior art rules based systems to adapt to changing conditions because continuously re-evaluating rules in order to requeue contacts as might be necessary can place a significant processing burden on the rules engine, thereby increasing the response time necessary for the engine to allocate incoming contacts to a queue. To avoid this result, in many cases, prior art rules based systems will not requeue contacts once they have been assigned. However, this has the negative effect of reducing those systems' flexibility. Thus, there is a need in the art for a queuing system which can allow contacts to be intelligently queued among multiple queues, while also avoiding the drawbacks of known rules engine based systems.